#ifndef SMIL_BASICTIMING_H_INCLUDED
#define SMIL_BASICTIMING_H_INCLUDED
#include "testable.h"
#include "datatypes.h"
#include "duration.h"
#include "enums.h"

namespace smil{
    // SMIL Basic timing module
    class BasicTiming : public Testable // is a Testable
    {
        public: // has a begin, dur, end, max, min, repeat, repeatCount, repeatDur, expr, fill
        BasicTiming();
        virtual ~BasicTiming();
        // getactiveduration
        // set/get/clear begin
        // set/get/clear dur
        // set/get/clear end
        // set/get/clear min
        // set/get/clear max
        // set/get/clear repeatDur
        property <endval> begin; // replace this with a std::list<endval> or something
        property <duration> dur;
        property <endval> end; // replace this with a std::list<endval> or something
        property <duration> min;
        property <duration> max;
        property <float> repeatCount;
        property <duration> repeatDur;
        property <filltype> fill;
        virtual duration get_active_duration();
        virtual duration get_simple_duration();
        virtual duration get_implicit_duration();
        // string expr; //probably ecma script someday
    };
}
#endif // SMIL_BASICTIMING_H_INCLUDED
